package utils;

import java.sql.*;

/**
 * 工具类 都是static 类
 */
public class DBUtil {
//    1. 定义数据库地址
   static String url = "jdbc:mysql:///test?characterEncoding=utf8";
   static String user = "root";
   static String PWD = "root";
//    2. 注册驱动
    static {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}
//    3. 获取连接对象
    public static Connection getConn() throws SQLException {
        Connection conn = DriverManager.getConnection(url, user, PWD);
        return conn;
    }
//    4. 通用的查询方法 返回结果集
    public static ResultSet query(String sql,Object...keys){
        ResultSet re = null;
        try {
            Connection conn = getConn();
//        获取执行sql语句的pst
            PreparedStatement pst = conn.prepareStatement(sql);
//        遍历keys值
            for (int i = 0; i < keys.length; i++) {
                pst.setObject((i+1),keys[i]);
            }
//            pst 执行sql得到结果集
            re = pst.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
//        返回结果集
        return re;
    }
//    5. 通用的update
    public static int update(String sql,Object...keys){
    int re = 0;
    try {
        Connection conn = getConn();
//        获取执行sql语句的pst
        PreparedStatement pst = conn.prepareStatement(sql);
//        遍历keys值
        for (int i = 0; i < keys.length; i++) {
            pst.setObject((i+1),keys[i]);
        }
//            pst 执行sql得到结果集
        re = pst.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
//        返回结果集
    return re;
}
}
